package com.example.singleton;

/**
 * 恶汉模式
 * 类加载到内存后，就实例化一个实例，JVM保证线程安全
 * 简单实用，推荐使用
 * 唯一缺点：不管用到与否，类装载时就会完成实例化（话说：你不用的，你装载它干嘛，净浪费内存）
 */
public class Demo1 {
    private static final Demo1 INSTANCE = new Demo1();

    private Demo1() {}

    public static Demo1 getInstance() {
        return INSTANCE;
    }
}
class Demo1Test {
    public static void main(String[] args) {
        // 私有构造方法，无法通过new创建实例
        //Demo1 demo1 = new Demo1();
        Demo1 demo2 = Demo1.getInstance();
        Demo1 demo3 = Demo1.getInstance();
        // 验证是否是同一个实例
        System.out.println(demo2 == demo3);
    }
}
